package com.hwd.srb.core.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hwd.srb.core.enmu.BorrowAuthEnum;
import com.hwd.srb.core.enmu.BorrowerStatusEnum;
import com.hwd.srb.core.pojo.entity.Borrower;
import com.hwd.srb.core.pojo.vo.BorrowerApprovalVO;
import com.hwd.srb.core.pojo.vo.BorrowerDetailVO;
import com.hwd.srb.core.pojo.vo.BorrowerVO;

/**
 * <p>
 * 借款人 服务类
 * </p>
 *
 * @author 黄伟东/Victor
 * @since 2022-03-10
 */
public interface BorrowerService extends IService<Borrower> {

    /**
     * 根据userId查询借款人状态
     *
     * @param userId 用户id
     * @return java.lang.Integer
     */
    BorrowerStatusEnum getBorrowerStatusByUserId(Long userId);

    /**
     * 保存借款人信息
     *
     * @param borrowerVO 借款人信息对象
     * @param userId     用户id
     */
    void saveBorrowerVOByUserId(BorrowerVO borrowerVO, Long userId);

    /**
     * 根据关键字查询借款人列表(额度申请)
     *
     * @param pageParam 分页查询参数，page，size
     * @param keyword   关键字
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.hwd.srb.core.pojo.entity.Borrower>
     */
    IPage<Borrower> listPage(Page<Borrower> pageParam, String keyword);

    /**
     * 根据id查询借款人详情(额度申请)
     *
     * @param borrowerId 借款人id
     * @return com.hwd.srb.core.pojo.vo.BorrowerDetailVO
     */
    BorrowerDetailVO show(Long borrowerId);

    /**
     * 借款额度审核
     *
     * @param borrowerApprovalVO 借款人审核数据对象
     */
    void approval(BorrowerApprovalVO borrowerApprovalVO);
}
